1. Field of the Invention
This invention relates to screen reader software for blind and low-vision computer users. More specifically, it relates to enhancements to reduce undesired speech and/or Braille output from web pages.
2. Brief Description of the State of the Art
Personal computers and the Internet greatly enhanced communications and access to information from around the world. Typically, visual information is displayed upon a monitor screen and data can be added or manipulated via keystrokes upon an associated keyboard. Feedback is provided visually to the user by the monitor screen. Blind users cannot utilize the information appearing upon the monitor screen while visually impaired users may experience difficulty doing so. Accordingly, screen readers have been developed to assist blind and visually impaired users when they use a personal computer.
A screen reader is software which interprets the output of a computer as sent to a computer screen and converts it into alternative output. Typically, the alternative output is in the form of synthetic speech or Braille characters. Screen readers are particularly useful for a blind or low vision user. One such screen reader is JAWS for Windows developed and sold by Freedom Scientific, Inc. When installed upon a personal computer, JAWS provides access to the operating system, software applications and the Internet. JAWS includes a speech synthesizer that cooperates with the sound card in the personal computer to read aloud information appearing upon the computer monitor screen or that is derived through communicating directly with the application or operating system. Thus, JAWS provides access to a wide variety of information, education and job related applications. Additionally, JAWS includes an interface that can provide output to refreshable Braille displays. JAWS supports Internet Explorer and similar web browsers with special features, such as, links lists, frame lists, forms mode and reading of HTML labels and graphic labels included on web pages. Upon entering an HTML document via an Internet link, JAWS actuates a Virtual PC Cursor that mimics the functions of the PC cursor. The Virtual PC cursor causes JAWS to signal the speech synthesizer to speak the number of frames in a document being read in Internet Explorer and the number of links in the frame currently being displayed. Also, JAWS causes the speech synthesizer to read graphics labeled by alternate tags in HTML code. It should be noted that reference to JAWS is made as an example of a screen reader but the novel and non-obvious methods claimed herein are applicable to screen readers as a whole.
An objective of the present invention is to enable screen reader users to seamlessly hide, modify, and rearrange elements in the virtual view. Achieving this functionality is not inherently obvious or intuitive due to the technical challenges of modifying and rearranging document object model (DOM) nodes. JAWS cedes control of the tab order to the underlying application as much as possible. This helps to avoid differences in browser behavior with and without JAWS, and avoids the developer of a third party screen reader application like JAWS from solving a problem already solved by the browsers. If an element's type were customized as a result of this feature, its focusable characteristics might change. JAWS would have to alter or enhance the tab order to accommodate the customization. Implementing this behavior would involve a high level of complexity with a low confidence of reliability.
JAWS gathers the information it renders from two different sources depending on whether the user is reading by line or tabbing through the document. The line content comes from the DOM server, and tabbing content typically comes from the data retrieved from focus change events. If the DOM content were changed, JAWS would be unable to change the focused data correspondingly. Therefore, the user would hear conflicting information depending on how they navigated. Reconciling these two data sources would be complex and resource intensive.
Modifying or adding nodes to the DOM would change the node data in such a way that subsequent customizations would be based on previous customizations. This sort of interdependence would make rules less reliable because the order of operations would be critical for success. And any solution to the problem would likely increase the memory used by the DOM, slow down the loading of the virtual view, or both.
Depending on the screen reader application, rearranging nodes in the DOM may not be a practical solution. For JAWS, presentation of a node in the virtual view depends heavily on the properties of its ancestors. If those properties aren't present, the presentation in the virtual view is undefined.
For these reasons, the basic problem that modifying and rearranging the page was supposed to solve is overcome by a novel and non-obvious solution. This solution addresses the problem of helping visually impaired users quickly find and navigate the information they're interested in.